/**
 *
 *  connect()() 连接redux + 组件
 *
 * 1. 高阶组件
 * 2. 柯里化调用形式
 * 3. 包装的逻辑是什么？
 */

import React, { Component } from 'react';
import Context from './context'

// 回调函数  mapState(list)
export const connect = (mapState, mapDispatch) => (WrapperComponent) => {
  return class extends Component {
    // 提取逻辑 

    state = { // 定义一个store
      // store
      list: {
        "name": "devin",
        "age": 10
      }
    }

    render() {
      let { list } = this.state;
      let callback1 = mapState(list) // ...state
      // callback1： 
      // let callback2 = mapDispatch()
      return <WrapperComponent {...callback1} {...this.props}>

      </WrapperComponent >
    }
  }
}


// class Foo extends Component {
//   render() {
//     return <div></div>
//   }
// }

// // 获取数据，并且把数据放在props上 {...props}
// const mapState = (state) => {
//   return {}
// }
// // 获取方法 把方法放在props
// const mapAction = (dispatch) => {
//   return {}
// }

// export default connect(mapState, mapAction)(Foo)





